package cn.cttic.dashboard.service;

import cn.cttic.dashboard.domain.*;

import java.time.LocalDate;
import java.time.LocalDateTime;
import java.util.List;

/**
 * 工作台接口
 *
 * @author Times.Studio
 * @date 2024-09-30
 */
public interface IWorkbenchService {

    /**
     * 查询指标数据
     * @return 指标数据
     */
    FullBenchmarkVo getFullBenchmark();

    /**
     * 查询销售排名
     * @return 销售排名
     */
    List<SaleRankVo> getSaleRank();

    /**
     * 查询安装排名
     * @return 安装排名
     */
    List<InstallRankVo> getInstallRank();

    /**
     * 查询验收排名
     * @return 验收排名
     */
    List<VerifyRankVo> getVerifyRank();

    /**
     * 查询产品服务统计数据
     * @return 产品服务统计数据
     */
    List<ProductCounterStatisticVo> getProductCounterStatistic();

    /**
     * 查询产品销售年度分布数据
     * @return 产品销售年度分布数据
     */
    ProductSaleByMonthOverYearDisplayVo getProductSaleByMonthOverYear(String productId);

    /**
     * 查询销售安装情况分布
     * @return 销售安装情况分布
     */
    List<SaleInstallByDayOverPeriodChartVo> getSaleInstallByDayOverPeriod(LocalDateTime startDate, LocalDateTime endDate);

    /**
     * 查询作业流年度统计分析
     * @return 作业流年度统计分析
     */
    WorkStatisticByMonthOverYearDisplayVo getWorkStatisticByMonthOverYear(Integer year);

}
